class Solution {
    public List<String> subdomainVisits(String[] cpdomains) {
		//创建map防重，快速查找是否统计过
        Map<String,Integer> domainsSumMap = new HashMap();
		//循环处理给出的域名
        for(String cpdomain : cpdomains){
            String[] cpds = cpdomain.split(" ");
            Integer times = Integer.valueOf(cpds[0]);
            String domain = cpds[1];
			//统计子域名
            while(true){
				//判断是否存在该子域名，不存在：添加统计；存在：累加次数
                if(domainsSumMap.containsKey(domain)){
                    domainsSumMap.put(domain, domainsSumMap.get(domain)+times);
                }else{
                    domainsSumMap.put(domain, times);
                }
				//获取子域名
                if(domain.indexOf(".")<0)break;
                domain = domain.substring(domain.indexOf(".")+1);
            }
        }
		//统计结果
        List<String> arr = new ArrayList();
        for(String domain : domainsSumMap.keySet()){
            arr.add(domainsSumMap.get(domain)+ " " + domain);
        }
        return arr;
    }
}